<?php
ob_start();
header('Content-Type: text/html;charset=utf-8');
/*
	更新记录：
		2014-07-23 创建
		2014-08-05 修复BUG，上传文件夹如果没有子文件夹时报错的问题。
		2014-09-12 完成逻辑。
		2014-09-15 修复设置子文件，子文件夹层级结构错误的问题。
		2016-04-13 以md5模式上传文件夹
		2016-05-29 修复添加文件夹数据错误的问题。
		2017-05-31 优化逻辑，取消POST整个文件夹数据，而是化整为零传小数据。
*/
require '../../vendor/autoload.php';

use biz\FolderSchema;
use database\DBFile;
use model\FileInf;
use utils\PathTool;
use biz\PathGuidBuilder;
use biz\up7_biz_event;

$id  	 = $_GET["id"];
$pathLoc = $_GET["pathLoc"];
$sizeLoc = $_GET["sizeLoc"];
$lenLoc  = $_GET["lenLoc"];
$uid 	 = $_GET["uid"];
$fCount  = $_GET["filesCount"];
$cbk	 = $_GET["callback"];
$pathLoc = PathTool::url_decode($pathLoc);

$fileSvr             = new FileInf();
$fileSvr->id         = $id;
$fileSvr->nameLoc    = PathTool::getName($pathLoc);
$fileSvr->nameSvr    = $fileSvr->nameLoc;
$fileSvr->pathLoc    = $pathLoc;
$fileSvr->sizeLoc    = $sizeLoc;
$fileSvr->lenLoc     = intval($lenLoc);
$fileSvr->fileCount  = intval($fCount);
$fileSvr->fdTask     = true;
$fileSvr->uid		 = $uid;
//生成路径
$pb = new PathGuidBuilder();
$fileSvr->pathSvr = $pb->genFolder($id,$fileSvr->nameLoc);
$fileSvr->pathSvr = str_replace("\\", "/", $fileSvr->pathSvr);
if(!is_dir($fileSvr->pathSvr))
{
    exit("create dir error");
    return;
}

//创建层级信息文件
$fs = new FolderSchema();
if(!$fs->create($fileSvr))
{
    exit("create dir schema error");
    return;
}

//添加到根目录
DBFile::Add($fileSvr);

//触发事件
up7_biz_event::folder_create($fileSvr);

//将数组转换为JSON
$fileSvr->nameLoc = PathTool::urlencode_safe($fileSvr->nameLoc);
$fileSvr->nameSvr = PathTool::urlencode_safe($fileSvr->nameSvr);
$fileSvr->pathLoc = PathTool::urlencode_safe($fileSvr->pathLoc);
$fileSvr->pathSvr = PathTool::urlencode_safe($fileSvr->pathSvr);
$json = json_encode($fileSvr);
$json = PathTool::url_decode($json);//还原汉字
$json = PathTool::url_encode($json);

echo "$cbk({\"value\":\"$json\"})";
header('Content-Length: ' . ob_get_length());
?>